home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_gnats.idb / usr / freeware / info / gnats.info-1.z / gnats.info-1
Encoding:
GNU Info File  |  1999-04-16  |  45.8 KB  |  1,202 lines

  1. This is Info file gnats.info, produced by Makeinfo-1.55 from the input
  2. file ./gnats.texi.
  3.  
  4. START-INFO-DIR-ENTRY
  5. * Keeping Track: (gnats).        GNU Problem Report Management System
  6. END-INFO-DIR-ENTRY
  7.  
  8.    Copyright (C) 1993 Free Software Foundation, Inc.
  9.  
  10.    Permission is granted to make and distribute verbatim copies of this
  11. manual provided the copyright notice and this permission notice are
  12. preserved on all copies.
  13.  
  14.    Permission is granted to copy and distribute modified versions of
  15. this manual under the conditions for verbatim copying, provided also
  16. that the entire resulting derived work is distributed under the terms
  17. of a permission notice identical to this one.
  18.  
  19.    Permission is granted to copy and distribute translations of this
  20. manual into another language, under the above conditions for modified
  21. versions.
  22.  
  23. 
  24. File: gnats.info,  Node: Top,  Next: Introduction,  Prev: (DIR),  Up: (DIR)
  25.  
  26. Overview
  27. ********
  28.  
  29.    This manual documents GNATS, the GNU Problem Report Management
  30. System, version 3.2.  GNATS is a bug-tracking tool designed for use at
  31. a central "Support Site".  Users who experience problems use electronic
  32. mail to communicate these problems to "maintainers" at that Support
  33. Site.  GNATS partially automates the tracking of these "Problem
  34. Reports" ("PR"s) by:
  35.  
  36.    * organizing problem reports into a database and notifying
  37.      responsible parties of suspected bugs;
  38.  
  39.    * allowing support personnel and their managers to edit and query
  40.      accumulated bugs; and
  41.  
  42.    * providing a reliable archive of problems (and their subsequent
  43.      solutions) with a given program.
  44.  
  45.    GNATS offers many of the same features offered by more generalized
  46. databases, including editing, querying, and basic reporting.  The GNATS
  47. database itself is an ordered repository for problem reports; each PR
  48. receives a unique, incremental "PR number" which identifies it
  49. throughout its lifetime.  For a discussion on the working system
  50. adopted by GNATS, see *Note The database paradigm: Paradigm.
  51.  
  52.    You can access the submitting, editing, and querying functions of
  53. GNATS from within GNU Emacs.  *Note Invoking the GNATS tools: Invoking
  54. the tools.
  55.  
  56. * Menu:
  57.  
  58. * Introduction::          Introducing GNATS
  59. * Invoking the tools::    Invoking the GNATS tools
  60. * Management::            GNATS Administration
  61. * Installation::          Installing GNATS
  62. * Locations::             Where GNATS lives
  63. * Regexps::               Querying using regular expressions
  64. * Index::
  65.  
  66. 
  67. File: gnats.info,  Node: Introduction,  Next: Invoking the tools,  Prev: Top,  Up: Top
  68.  
  69. Introducing GNATS
  70. *****************
  71.  
  72.    Any support organization realizes that a large amount of data flows
  73. back and forth between the maintainers and the users of their products.
  74. This data often takes the form of problem reports and communication via
  75. electronic mail.  GNATS addresses the problem of organizing this
  76. communication by defining a database made up of archived and indexed
  77. electronic mail messages.
  78.  
  79.    GNATS was designed as a tool for software maintainers.  It consists
  80. of several utilities which, when used in concert, formulate and
  81. administer a database of Problem Reports grouped by site-defined
  82. "problem categories".  It allows a support organization to keep track
  83. of problems (hence the term "Problem Report") in an organized fashion.
  84. Essentially, GNATS acts as an active archive for field-separated
  85. textual data submitted through electronic mail.
  86.  
  87. * Menu:
  88.  
  89. * Paradigm::       The database paradigm
  90. * Flowchart::      Flowchart of GNATS activities
  91. * States::         States of Problem Reports
  92. * Fields::         Problem Report format
  93.  
  94. 
  95. File: gnats.info,  Node: Paradigm,  Next: Flowchart,  Up: Introduction
  96.  
  97. The database paradigm
  98. =====================
  99.  
  100.    It is in your best interest as the maintainer of a body of work to
  101. organize the feedback you receive on that work, and to make it easy for
  102. users of your work to report problems and suggestions.
  103.  
  104.    GNATS makes this easy by automatically filing incoming problem
  105. reports into appropriate places, by notifying responsible parties of the
  106. existence of the problem and (optionally) sending an acknowledgement to
  107. the submitter that the report was received, and by making these Problem
  108. Reports accessible to queries and easily editable.  GNATS is a database
  109. specialized for a specific task.
  110.  
  111.    GNATS was designed for use at a Support Site that handles a high
  112. level of problem-related traffic though electronic mail.  It maintains
  113. Problem Reports in the form of text files with defined "fields" (*note
  114. GNATS data fields: Fields.).  The location of the database, as well as
  115. the categories it accepts as valid, the maintainers for whom it
  116. provides service, and the submitters from whom it accepts Problem
  117. Reports, are all definable by the "Support Site".  *Note GNATS
  118. administration: Management.
  119.  
  120.    Each PR is a separate file within a main repository (*note Where
  121. GNATS lives: Locations.).  Editing access to the database is regulated
  122. to maintain consistency, but anyone with electronic mail access may
  123. submit Problem Reports.  To make queries on the database faster, an
  124. index is kept automatically (*note The `index' file: index file.).
  125.  
  126.    We provide several software tools so that users may submit new
  127. Problem Reports, edit existing Problem Reports, and query the database.
  128.  
  129.    * `send-pr' is used by both product maintainers and the end users of
  130.      the products they support to submit PRs to the database.
  131.  
  132.    * `edit-pr' is used by maintainers to use when editing problem
  133.      reports in the database.
  134.  
  135.    * Maintainers, managers and administrators can use `query-pr' to
  136.      make inquiries about indidvidual PRs or groups of PRs.
  137.  
  138.    `send-pr' can also be packaged by itself  and distributed to anyone
  139. you wish to receive Problem  Reports  from; see *Note Configuring
  140. `send-pr' for the outside world: mkdist.
  141.  
  142.    At the Support Site, a GNATS "administrator" is charged with the
  143. duty of maintaining GNATS.  These duties are discussed in detail in
  144. *Note GNATS Administration: Management, and generally include
  145. configuring GNATS for the Support Site, editing PRs that GNATS cannot
  146. process, pruning log files, setting up new problem categories, backing
  147. up the database, and distributing `send-pr' so that others may submit
  148. Problem Reports.
  149.  
  150.    Responsibility for a given Problem Report depends on the category of
  151. the problem.  Optionally, an automated reminder can be sent to the
  152. responsible person if a problem report is neglected for a requisite time
  153. period.  *Note Changing your local configuration: Local configuration.
  154.  
  155.    GNATS does not have the ability to decipher random text, so any
  156. problem reports which arrive in a format GNATS does not recognize are
  157. placed in a separate directory pending investigation by the GNATS
  158. administrator (*note GNATS Administration: Management.).
  159.  
  160.    Once a problem is recorded in the database, work can begin toward a
  161. solution.  A problem's initial "state" is `open' (*note States of
  162. Problem Reports: States.).  An acknowledgement is sent to the
  163. originator of the bug report (if that feature of GNATS is activated).
  164. gNATS forwards copies of the report to the party responsible for that
  165. problem category and to the person responsible for problems arriving
  166. from that "Submitter Site".
  167.  
  168.    When a problem has been identified, the maintainer can change its
  169. state to `analyzed', and then to `feedback' when a solution is found.
  170. Each time the state of a PR changes, the submitter of the problem
  171. report is notified of the reason for the change.  If the party
  172. responsible for the PR changes, the previous responsible party and the
  173. new responsible party receive notice of the change.  The change and
  174. reason are also recorded in the `>Audit-Trail:' field of the Problem
  175. Report.  (*Note Editing existing Problem Reports: edit-pr.  For
  176. information on the `>Audit-Trail:' field, see *Note Problem Report
  177. format: Fields.)
  178.  
  179.    When the originator of the Problem Report confirms that the solution
  180. works, the maintainer can change the state to "closed".  If the PR
  181. cannot be closed, the maintainer can change its state to "suspended" as
  182. a last resort.  (For a more detailed description of these states, see
  183. *Note States of Problem Reports: States.)
  184.  
  185. 
  186. File: gnats.info,  Node: Flowchart,  Next: States,  Prev: Paradigm,  Up: Introduction
  187.  
  188. Flowchart of GNATS activities
  189. =============================
  190.  
  191.    This informal flowchart shows the relationships of the GNATS tools
  192. to each other and to the files with which they interoperate.
  193.  
  194.      +===========+    +===========+    +===========+
  195.      # USER SITE #    # USER SITE #    # USER SITE #
  196.      #           #    #           #    #           #
  197.      # *send-pr* #    # *send-pr* #    # *send-pr* #
  198.      +=====|=====+    +=====|=====+    +=====|=====+
  199.            |                V                |
  200.            `--------->    Email....  <-------'
  201.                      ,--->     |
  202.      +===============|=========|===================+
  203.      # SUPPORT SITE  |         `---> /etc/aliases  #
  204.      #          *send-pr*                |         #
  205.      #     +-----------------------------V--------+#
  206.      #     | GNATS         GNATS_ROOT/gnats-queue/|#
  207.      #     |                             |        |#
  208.      #     |        _________            V        |#
  209.      #     |       |*file-pr*|<--- *queue-pr -r*  |#
  210.      #     |       |         |                    |#
  211.      #  _  |       |  valid  |                    |#
  212.      # |M| |       |Category?|N--.                |#
  213.      # |A| |       |_________|   |      GNATS     |#
  214.      # |I| |              Y|     |  ADMINISTRATOR |#
  215.      # |N| |               |     |                |#
  216.      # |T|<----------------|     |                |#
  217.      # |A| |               |     |  .-> *edit-pr* |#
  218.      # |I|--->*edit-pr*-.  |     V  |           | |#
  219.      # |N| |            |  |GNATS_ROOT/pending  | |#
  220.      # |E|<--*query-pr* |  |                    | |#
  221.      # |R| |       |    |  |                    | |#
  222.      # |S| |       |    V  V                    V |#
  223.      # |_| |+------------------------------------+|#
  224.      #     ||         GNATS Database             ||#
  225.      #     ||   GNATS_ROOT/CATEGORY/GNATS-ID     ||#
  226.      #     |+------------------------------------+|#
  227.      #     +--------------------------------------+#
  228.      +=============================================+
  229.  
  230. 
  231. File: gnats.info,  Node: States,  Next: Fields,  Prev: Flowchart,  Up: Introduction
  232.  
  233. States of Problem Reports
  234. =========================
  235.  
  236.    Each PR goes through a defined series of states between origination
  237. and closure.  The originator of a PR receives notification
  238. automatically of any state changes.
  239.  
  240. "open"
  241.      The initial state of a Problem Report.  This means the PR has been
  242.      filed and the responsible person(s) notified.
  243.  
  244. "analyzed"
  245.      The responsible person has analyzed the problem.  The analysis
  246.      should contain a preliminary evaluation of the problem and an
  247.      estimate of the amount of time and resources necessary to solve
  248.      the problem.  It should also suggest possible workarounds.
  249.  
  250. "feedback"
  251.      The problem has been solved, and the originator has been given a
  252.      patch or other fix.  The PR remains in this state until the
  253.      originator acknowledges that the solution works.
  254.  
  255. "closed"
  256.      A Problem Report is closed ("the bug stops here") only when any
  257.      changes have been integrated, documented, and tested, and the
  258.      submitter has confirmed the solution.
  259.  
  260. "suspended"
  261.      Work on the problem has been postponed.  This happens if a timely
  262.      solution is not possible or is not cost-effective at the present
  263.      time.  The PR continues to exist, though a solution is not being
  264.      actively sought.  If the problem cannot be solved at all, it
  265.      should be closed rather than suspended.
  266.  
  267. 
  268. File: gnats.info,  Node: Fields,  Prev: States,  Up: Introduction
  269.  
  270. Problem Report format
  271. =====================
  272.  
  273.    The format of a PR is designed to reflect the nature of GNATS as a
  274. database.  Information is arranged into "fields", and kept in
  275. individual records (Problem Reports).
  276.  
  277.    Problem Report fields are denoted by a keyword which begins with `>'
  278. and ends with `:', as in `>Confidential:'.  Fields belong to one of
  279. three data types:
  280.  
  281. ENUMERATED
  282.      One of a specific set of values, which vary according to the
  283.      field.  The value for each keyword must be on the same line as the
  284.      keyword.  These values are not configurable (yet).
  285.  
  286.      The following fields are ENUMERATED format; see the descriptions of
  287.      fields below for explanations of each field in detail:
  288.  
  289.           >Confidential:   >Severity:       >Priority:
  290.           >Class:          >State:          >Number:
  291.  
  292. TEXT
  293.      One single line of text which must begin and end on the same line
  294.      (i.e., before a newline) as the keyword.  See the descriptions of
  295.      fields below for explanations of each field in detail.  The
  296.      following fields are TEXT format:
  297.  
  298.           >Submitter-Id:   >Originator:     >Synopsis:
  299.           >Category:       >Release:        >Responsible:
  300.           >Arrival-Date:
  301.  
  302. MULTITEXT
  303.      Text of any length may occur in this field.  MULTITEXT may span
  304.      multiple lines and may also include blank lines.  A MULTITEXT field
  305.      ends only when another keyword appears.  See the descriptions of
  306.      fields below for explanations of each field in detail.
  307.  
  308.      The following fields are MULTITEXT format:
  309.  
  310.           >Organization:   >Environment:    >Description:
  311.           >How-To-Repeat:  >Fix:            >Audit-Trail:
  312.           >Unformatted:
  313.  
  314.    A Problem Report contains two different types of fields: "Mail
  315. Header" fields, which are used by the mail handler for delivery, and
  316. "Problem Report" fields, which contain information relevant to the
  317. Problem Report and its submitter.  A Problem Report is essentially a
  318. specially formatted electronic mail message.
  319.  
  320. Example Problem Report
  321. ----------------------
  322.  
  323.    The following is an example Problem Report.  Mail headers are at the
  324. top, followed by GNATS fields, which begin with `>' and end with `:'.
  325. The `Subject:' line in the mail header and the `>Synopsis:' field are
  326. usually duplicates of each other.
  327.  
  328.      Message-Id:  MESSAGE-ID
  329.      Date:        DATE
  330.      From:        ADDRESS
  331.      Reply-To:    ADDRESS
  332.      To:          BUG-ADDRESS
  333.      Subject:     SUBJECT
  334.      
  335.      >Number:       GNATS-ID
  336.      >Category:     CATEGORY
  337.      >Synopsis:     SYNOPSIS
  338.      >Confidential: yes *or* no
  339.      >Severity:     critical, serious, *or* non-critical
  340.      >Priority:     high, medium *or* low
  341.      >Responsible:  RESPONSIBLE
  342.      >State:        open, analyzed, suspended, feedback, *or* closed
  343.      >Class:        sw-bug, doc-bug, change-request, support,
  344.      duplicate, *or* mistaken
  345.      >Submitter-Id: SUBMITTER-ID
  346.      >Arrival-Date: DATE
  347.      >Originator:   NAME
  348.      >Organization: ORGANIZATION
  349.      >Release:      RELEASE
  350.      >Environment:
  351.         ENVIRONMENT
  352.      >Description:
  353.         DESCRIPTION
  354.      >How-To-Repeat:
  355.         HOW-TO-REPEAT
  356.      >Fix:
  357.         FIX
  358.      >Audit-Trail:
  359.      APPENDED-MESSAGES...
  360.      State-Changed-From-To: FROM-TO
  361.      State-Changed-When: DATE
  362.      State-Changed-Why:
  363.         REASON
  364.      Responsible-Changed-From-To: FROM-TO
  365.      Responsible-Changed-When: DATE
  366.      Responsible-Changed-Why:
  367.         REASON
  368.      >Unformatted:
  369.         MISCELLANEOUS
  370.  
  371. * Menu:
  372.  
  373. * Mail header fields::
  374. * Problem Report fields::
  375.  
  376. 
  377. File: gnats.info,  Node: Mail header fields,  Next: Problem Report fields,  Up: Fields
  378.  
  379. Mail header fields
  380. ------------------
  381.  
  382.    A Problem Report may contain any mail header field described in the
  383. Internet standard RFC-822.  However, only the fields which identify the
  384. sender and the subject are required by `send-pr':
  385.  
  386. `To:'
  387.      The preconfigured mail address for the Support Site where the PR
  388.      is to be sent, automatically supplied by `send-pr'.
  389.  
  390. `Subject:'
  391.      A terse description of the problem.  This field normally contains
  392.      the same information as the `>Synopsis:' field.
  393.  
  394. `From:'
  395.      Usually supplied automatically by the originator's mailer; should
  396.      contain the originator's electronic mail address.
  397.  
  398. `Reply-To:'
  399.      A return address to which electronic replies can be sent; in most
  400.      cases, the same address as the `From:' field.
  401.  
  402.    One of the configurable options for GNATS is whether or not to
  403. retain `Received-By:' headers, which often consume a lot of space and
  404. are not often used.  *Note Changing your local configuration: Local
  405. configuration.
  406.  
  407. 
  408. File: gnats.info,  Node: Problem Report fields,  Prev: Mail header fields,  Up: Fields
  409.  
  410. Problem Report fields
  411. ---------------------
  412.  
  413. Field descriptions
  414. ------------------
  415.  
  416.    The following fields are present whenever a PR is submitted via the
  417. program `send-pr'.  GNATS adds additional fields when the PR arrives at
  418. the Support Site; explanations of these follow this list.
  419.  
  420. `>Submitter-Id:'
  421.      (TEXT) A unique identification code assigned by the Support Site.
  422.      It is used to identify all Problem Reports coming from a particular
  423.      site.  (Submitters without a value for this field can invoke
  424.      `send-pr' with the `--request-id' option to apply for one from the
  425.      support organization.  Problem Reports from those not affiliated
  426.      with the support organization should use the default value of `net'
  427.      for this field.)
  428.  
  429. `>Originator:'
  430.      (TEXT) Originator's real name.  The default is the value of the
  431.      originator's environment variable `NAME'.
  432.  
  433. `>Organization:'
  434.      (MULTITEXT) The originator's organization.  The default value is
  435.      set with the variable `DEFAULT_ORGANIZATION' in the `config' file
  436.      (*note The `config' file: config.).
  437.  
  438. `>Confidential:'
  439.      (ENUMERATED) Use of this field depends on the originator's
  440.      relationship with the support organization; contractual agreements
  441.      often have provisions for preserving confidentiality.  Conversely,
  442.      a lack of a contract often means that any data provided will not
  443.      be considered confidential.  Submitters should be advised to
  444.      contact the support organization directly if this is an issue.
  445.  
  446.      If the originator's relationship to the support organization
  447.      provides for confidentiality, then if the value of this field is
  448.      `yes' the support organization treats the PR as confidential; any
  449.      code samples provided are not made publicly available (e.g., in
  450.      regression test suites).  The default value is `yes'.
  451.  
  452. `>Synopsis:'
  453.      (TEXT) One-line summary of the problem.  `send-pr' copies this
  454.      information to the `Subject:' line when you submit a Problem
  455.      Report.
  456.  
  457. `>Severity:'
  458.      (ENUMERATED) The severity of the problem.  Accepted values include:
  459.  
  460.     `critical'
  461.           The product, component or concept is completely
  462.           non-operational or some essential functionality is missing.
  463.           No workaround is known.
  464.  
  465.     `serious'
  466.           The product, component or concept is not working properly or
  467.           significant functionality is missing.  Problems that would
  468.           otherwise be considered `critical' are rated `serious' when a
  469.           workaround is known.
  470.  
  471.     `non-critical'
  472.           The product, component or concept is working in general, but
  473.           lacks features, has irritating behavior, does something
  474.           wrong, or doesn't match its documentation.  The default value
  475.      is `serious'.
  476.  
  477. `>Priority:'
  478.      (ENUMERATED) How soon the originator requires a solution.  Accepted
  479.      values include:
  480.  
  481.     `high'
  482.           A solution is needed as soon as possible.
  483.  
  484.     `medium'
  485.           The problem should be solved in the next release.
  486.  
  487.     `low'
  488.           The problem should be solved in a future release.
  489.  
  490.      The default value is `medium'.
  491.  
  492. `>Category:'
  493.      (TEXT) The name of the product, component or concept where the
  494.      problem lies.  The values for this field are defined by the Support
  495.      Site.  *Note The `categories' file: categories, for details.
  496.  
  497. `>Class:'
  498.      (ENUMERATED) The class of a problem can be one of the following:
  499.  
  500.     `sw-bug'
  501.           A general product problem.  (`sw' stands for "software".)
  502.  
  503.     `doc-bug'
  504.           A problem with the documentation.
  505.  
  506.     `change-request'
  507.           A request for a change in behavior, etc.
  508.  
  509.     `support'
  510.           A support problem or question.
  511.  
  512.     `duplicate (PR-NUMBER)'
  513.           Duplicate PR.  PR-NUMBER should be the number of the original
  514.           PR.
  515.  
  516.     `mistaken'
  517.           No problem, user error or misunderstanding.  This value is
  518.           valid only at the Support Site.
  519.  
  520.      The default is `sw-bug'.
  521.  
  522. `>Release:'
  523.      (TEXT) Release or version number of the product, component or
  524.      concept.
  525.  
  526. `>Environment:'
  527.      (MULTITEXT) Description of the environment where the problem
  528.      occured: machine architecture, operating system, host and target
  529.      types, libraries, pathnames, etc.
  530.  
  531. `>Description:'
  532.      (MULTITEXT) Precise description of the problem.
  533.  
  534. `>How-To-Repeat:'
  535.      (MULTITEXT) Example code, input, or activities to reproduce the
  536.      problem.  The support organization uses example code both to
  537.      reproduce the problem and to test whether the problem is fixed.
  538.      Include all preconditions, inputs, outputs, conditions after the
  539.      problem, and symptoms.  Any additional important information
  540.      should be included.  Include all the details that would be
  541.      necessary for someone else to recreate the problem reported,
  542.      however obvious.  Sometimes seemingly arbitrary or obvious
  543.      information can point the way toward a solution.  See also *Note
  544.      Helpful hints: Helpful hints.
  545.  
  546. `>Fix:'
  547.      (MULTITEXT) A description of a solution to the problem, or a patch
  548.      which solves the problem.  (This field is most often filled in at
  549.      the Support Site; we provide it to the submitter in case she has
  550.      solved the problem.)
  551.  
  552. GNATS adds the following fields when the PR arrives at the Support Site:
  553.  
  554. `>Number:'
  555.      (ENUMERATED) The incremental identification number for this PR.
  556.      This is included in the automated reply to the submitter (if that
  557.      feature of GNATS is activated; *note Changing your local
  558.      configuration: Local configuration.).  It is also included in the
  559.      copy of the PR that is sent to the maintainer.
  560.  
  561.      The `>Number:' field is often paired with the `>Category:' field as
  562.  
  563.           CATEGORY/NUMBER
  564.  
  565.      in subsequent email messages.  This is for historical reasons, as
  566.      well as because Problem Reports are stored in subdirectories which
  567.      are named by category.
  568.  
  569. `>State:'
  570.      (ENUMERATED) The current state of the PR.  Accepted values are:
  571.  
  572.     `open'
  573.           The PR has been filed and the responsible person notified.
  574.  
  575.     `analyzed'
  576.           The responsible person has analyzed the problem.
  577.  
  578.     `feedback'
  579.           The problem has been solved, and the originator has been
  580.           given a patch or other fix.
  581.  
  582.     `closed'
  583.           The changes have been integrated, documented, and tested, and
  584.           the originator has confirmed that the solution works.
  585.  
  586.     `suspended'
  587.           Work on the problem has been postponed.
  588.  
  589.      The initial state of a PR is `open'.  *Note States of Problem
  590.      Reports: States.
  591.  
  592. `>Responsible:'
  593.      (TEXT) The person responsible for this category.  GNATS retrieves
  594.      this information from the `categories' file (*note The
  595.      `categories' file: categories.).
  596.  
  597. `>Arrival-Date:'
  598.      (TEXT) The time that this PR was received by GNATS.  The date is
  599.      provided automatically by GNATS.
  600.  
  601. `>Audit-Trail:'
  602.      (MULTITEXT) Tracks related electronic mail as well as changes in
  603.      the `>State:' and `>Responsible:' fields with the sub-fields:
  604.  
  605.     `State-Changed-<From>-<To>: OLDSTATE>-<NEWSTATE'
  606.           The old and new `>State:' field values.
  607.  
  608.     `Responsible-Changed-<From>-<To>: OLDRESP>-<NEWRESP'
  609.           The old and new `>Responsible:' field values.
  610.  
  611.     `State-Changed-By: NAME'
  612.     `Responsible-Changed-By: NAME'
  613.           The name of the maintainer who effected the change.
  614.  
  615.     `State-Changed-When: TIMESTAMP'
  616.     `Responsible-Changed-When: TIMESTAMP'
  617.           The time the change was made.
  618.  
  619.     `State-Changed-Why: REASON...'
  620.     `Responsible-Changed-Why: REASON...'
  621.           The reason for the change.
  622.  
  623.      The `>Audit-Trail:' field also contains any mail messages received
  624.      by GNATS related to this PR, in the order received.
  625.  
  626. `>Unformatted:'
  627.      (MULTITEXT) Any random text found outside the fields in the
  628.      original Problem Report.
  629.  
  630. 
  631. File: gnats.info,  Node: Invoking the tools,  Next: Management,  Prev: Introduction,  Up: Top
  632.  
  633. Invoking the GNATS tools
  634. ************************
  635.  
  636.    The following programs comprise GNATS:
  637.  
  638. User Utilities
  639. --------------
  640.  
  641.    These tools are used by the maintainers of a body of work (`send-pr'
  642. is also used by the end users of the product).
  643.  
  644. `send-pr'
  645.      Used by anyone who has a problem with a body of work to submit a
  646.      report of the problem to the maintainers of that work (*note
  647.      Submitting Problem Reports: send-pr.).
  648.  
  649. `query-pr'
  650.      Used by software maintainers to query the GNATS database (*note
  651.      Querying the database: query-pr.).
  652.  
  653. `edit-pr'
  654.      Used by software maintainers to edit Problem Reports (to record new
  655.      data, to change the responsible party, etc.) (*note Editing
  656.      existing Problem Reports: edit-pr.).
  657.  
  658. `view-pr'
  659.      Used by software maintainers to view individual Problem Reports
  660.      using Emacs (*note Viewing individual Problem Reports: view-pr.).
  661.  
  662. Administrative Utilities
  663. ------------------------
  664.  
  665.    These tools are used by the GNATS administrator; see also *Note
  666. GNATS Administration: Management.  For complete explanations of these
  667. utilities, see *Note Administrative utilities: Admin utils.
  668.  
  669. `mkcat'
  670.      Creates new categories (*note Adding a problem category: mkcat.).
  671.  
  672. `rmcat'
  673.      Removes existing categories (*note Removing a problem category:
  674.      rmcat.).
  675.  
  676. `gen-index'
  677.      Generates an up-to-date copy of the index used by `query-pr' and
  678.      `edit-pr' (*note The `index' file: index file.).  Use `gen-index'
  679.      to rebuild the index if it becomes corrupted, or if you need a
  680.      copy of the current index for some reason (*note Regenerating the
  681.      index: gen-index.).
  682.  
  683. `mkdist'
  684.      Creates a distribution of the program `send-pr' for offsite
  685.      submitters of PRs (*note Configuring `send-pr' for the outside
  686.      world: mkdist.).
  687.  
  688. Internal Utilities
  689. ------------------
  690.  
  691.    These tools are used internally by GNATS.  You should not need to
  692. run these by hand.  For complete explanations of these utilities, see
  693. *Note Internal utilities: Internal utils.
  694.  
  695. `queue-pr'
  696.      Handles incoming bugs, first through a mail alias by queueing
  697.      incoming PRs as they arrive, and second as a periodic transfer
  698.      agent between the queue and the database.
  699.  
  700. `file-pr'
  701.      Files Problem Reports as they come in.
  702.  
  703. `at-pr'
  704.      Sends reminders to maintainers based on quoted response times.
  705.  
  706. `pr-edit'
  707.      Used by `edit-pr' to error-check and submit edited Problem Reports
  708.      (also *note Editing existing Problem Reports: edit-pr.).
  709.  
  710. `pr-addr'
  711.      Used by the `edit-pr' script to retrieve correct addresses from the
  712.      `responsible' file.
  713.  
  714.    *Note Where GNATS lives: Locations.
  715.  
  716. * Menu:
  717.  
  718. * send-pr::           Submitting Problem Reports
  719. * edit-pr::           Editing existing Problem Reports
  720. * query-pr::          Querying the database
  721. * view-pr::           Viewing individual Problem Reports
  722.  
  723. 
  724. File: gnats.info,  Node: send-pr,  Next: edit-pr,  Up: Invoking the tools
  725.  
  726. Submitting Problem Reports
  727. ==========================
  728.  
  729.    Use `send-pr' to submit Problem Reports to the database.  `send-pr'
  730. is both a shell script and a Lisp program for GNU Emacs; both
  731. implementations provide a template for submitters to complete.  In most
  732. cases, `send-pr' can determine intelligent default values for several
  733. fields, partially automating the bug-reporting process.
  734.  
  735.    *Note Configuring `send-pr' for the outside world: mkdist, for
  736. information on distributing a version of `send-pr' customized with your
  737. site's configuration.
  738.  
  739.    You can invoke `send-pr' from a shell prompt or from within GNU
  740. Emacs using `M-x send-pr'.
  741.  
  742. * Menu:
  743.  
  744. * using send-pr::             Creating new Problem Reports
  745. * send-pr in Emacs::          Using send-pr from within Emacs
  746. * send-pr from the shell::    Invoking send-pr from the shell
  747. * Helpful hints::
  748.  
  749. 
  750. File: gnats.info,  Node: using send-pr,  Next: send-pr in Emacs,  Up: send-pr
  751.  
  752. Creating new Problem Reports
  753. ----------------------------
  754.  
  755.    Invoking `send-pr' presents a PR "template" with a number of fields
  756. already filled in.  Complete the template as thoroughly as possible to
  757. make a useful bug report.  Submit only one bug with each PR.
  758.  
  759.    A template consists of three sections:
  760.  
  761. "Comments"
  762.      The top several lines of a blank template consist of a series of
  763.      comments that provide some basic instructions for completing the
  764.      Problem Report, as well as a list of valid entries for the
  765.      `>Category:' field.  These comments are all preceded by the string
  766.      `SEND-PR:' and are erased automatically when the PR is submitted.
  767.      The instructional comments within `<' and `>' are also removed.
  768.      (Only these comments are removed; lines you provide that happen to
  769.      have those characters in them, such as examples of shell-level
  770.      redirection, are not affected.)
  771.  
  772. "Mail Header"
  773.      `send-pr' creates a standard mail header.  `send-pr' completes all
  774.      fields except the `Subject:' line with default values.  (*Note
  775.      Problem Report format: Fields.)
  776.  
  777. "GNATS fields"
  778.      These are the informational fields that GNATS uses to route your
  779.      Problem Report to the responsible party for further action.  They
  780.      should be filled out as completely as possible.  (*Note Problem
  781.      Report format: Fields.  Also see *Note Helpful hints: Helpful
  782.      hints.)
  783.  
  784.    The default template contains your preconfigured `>Submitter-Id:'.
  785. `send-pr' attempts to determine values for the `>Originator:' and
  786. `>Organization:' fields (*note Problem Report format: Fields.).
  787. `send-pr' also attempts to find out some information about your system
  788. and architecture, and places this information in the `>Environment:'
  789. field if it finds any.
  790.  
  791.    You may submit problem reports to different Support Sites from the
  792. default site by specifying the alternate site when you invoke
  793. `send-pr'.  Each `site' has its own list of categories for which it
  794. accepts Problem Reports.
  795.  
  796.    `send-pr' also provides the mail header section of the template with
  797. default values in the `To:', `From:', and `Reply-To:' fields.  The
  798. `Subject:' field is empty.
  799.  
  800.    The template begins with a comment section:
  801.  
  802.      SEND-PR: -*- send-pr  -*-
  803.      SEND-PR: Lines starting with `SEND-PR' will be removed
  804.      SEND-PR: automatically as well as all comments (the text
  805.      SEND-PR: below enclosed in `<' and `>').
  806.      SEND-PR:
  807.      SEND-PR: Please consult the document `Reporting Problems
  808.      SEND-PR: Using send-pr' if you are not sure how to fill out
  809.      SEND-PR: a problem report.
  810.      SEND-PR:
  811.      SEND-PR: Choose from the following categories:
  812.  
  813. and also contains a list of valid `>Category:' values for the Support
  814. Site to whom you are submitting this Problem Report.  One (and only
  815. one) of these values should be placed in the `>Category:' field.
  816.  
  817.    The mail header is just below the comment section.  Fill out the
  818. `Subject:' field, if it is not already completed using the value of
  819. `>Synopsis:'.  The other mail header fields contain default values.
  820.  
  821.      To: SUPPORT-SITE
  822.      Subject: *complete this field*
  823.      From: YOUR-LOGIN@YOUR-SITE
  824.      Reply-To: YOUR-LOGIN@YOUR-SITE
  825.      X-send-pr-version: send-pr 3.2
  826.  
  827. where SUPPORT-SITE is an alias for the Support Site you wish to submit
  828. this PR to.
  829.  
  830.    The rest of the template contains GNATS fields.  Each field is
  831. either automatically completed with valid information (such as your
  832. `>Submitter-Id:') or contains a one-line instruction specifying the
  833. information that field requires in order to be correct.  For example,
  834. the `>Confidential:' field expects a value of `yes' or `no', and the
  835. answer must fit on one line; similarly, the `>Synopsis:' field expects
  836. a short synopsis of the problem, which must also fit on one line.  Fill
  837. out the fields as completely as possible.  *Note Helpful hints: Helpful
  838. hints, for suggestions as to what kinds of information to include.
  839.  
  840.    In this example, words in *italics* are filled in with
  841. pre-configured information:
  842.  
  843.      >Submitter-Id: *your submitter-id*
  844.      >Originator:   *your name here*
  845.      >Organization:
  846.          *your organization*
  847.      >Confidential:<[ yes | no ] (one line)>
  848.      >Synopsis:    <synopsis of the problem (one line)>
  849.      >Severity:    <[non-critical | serious | critical](one line)>
  850.      >Priority:    <[ low | medium | high ] (one line)>
  851.      >Category:    <name of the product (one line)>
  852.      >Class:       <[sw-bug | doc-bug | change-request | support]>
  853.      >Release:     <release number or tag (one line)>
  854.      >Environment:
  855.               <machine, os, target, libraries (multiple lines)>
  856.      
  857.      >Description:
  858.             <precise description of the problem (multiple lines)>
  859.      >How-To-Repeat:
  860.             <code/input/activities to reproduce (multiple lines)>
  861.      >Fix:
  862.             <how to correct or work around the problem, if known
  863.              (multiple lines)>
  864.  
  865.    When you finish editing the Problem Report, `send-pr' mails it to
  866. the address named in the `To:' field in the mail header.  `send-pr'
  867. checks that the complete form contains a valid `>Category:'.
  868.  
  869.    If your PR has an invalid value in one of the ENUMERATED fields
  870. (*note Problem Report format: Fields.), `send-pr' places the PR in a
  871. temporary file named `/tmp/pbadNNNN' on your machine.  NNNN is the
  872. process identification number given to your current `send-pr' session.
  873. If you are running `send-pr' from the shell, you are prompted as to
  874. whether or not you wish to try editing the same Problem Report again.
  875. If you are running `send-pr' from Emacs, the Problem Report is placed
  876. in the buffer `*send-pr-error*'; you can edit this file and then submit
  877. it with
  878.  
  879.      M-x gnats-submit-pr
  880.  
  881.    Any further mail concerning this Problem Report should be
  882. carbon-copied to the GNATS mailing address as well, with the category
  883. and identification number in the `Subject:' line of the message.
  884.  
  885.      Subject: Re: PR CATEGORY/GNATS-ID: ORIGINAL MESSAGE SUBJECT
  886.  
  887. Messages which arrive with `Subject:' lines of this form are
  888. automatically appended to the Problem Report in the `>Audit-Trail:'
  889. field in the order received.
  890.  
  891. 
  892. File: gnats.info,  Node: send-pr in Emacs,  Next: send-pr from the shell,  Prev: using send-pr,  Up: send-pr
  893.  
  894. Using `send-pr' from within Emacs
  895. ---------------------------------
  896.  
  897.    You can use an interactive `send-pr' interface from within GNU Emacs
  898. to fill out your Problem Report.  We recommend that you familiarize
  899. yourself with Emacs before using this feature (*note Introduction:
  900. (emacs)Introduction.).
  901.  
  902.    Call `send-pr' with `M-x send-pr'.(1)  `send-pr' responds with a
  903. Problem Report template preconfigured for the Support Site from which
  904. you received `send-pr'.  (If you use `send-pr' locally, the default
  905. Support Site is probably your local site.)
  906.  
  907.    You may also submit problem reports to different Support Sites from
  908. the default site.  To use this feature, invoke `send-pr' with
  909.  
  910.      C-u M-x send-pr
  911.  
  912.    `send-pr' prompts you for the name of a SITE.  SITE is an alias on
  913. your local machine which points to an alternate Support Site.
  914.  
  915.    `send-pr' displays the template and prompts you in the minibuffer
  916. with the line:
  917.      >Category: other
  918.  
  919. Delete the default value `other' *in the minibuffer* and replace it
  920. with the keyword corresponding to your problem (the list of valid
  921. categories is in the topmost section of the PR template).  For example,
  922. if the problem you wish to report has to do with the GNU C compiler,
  923. and your support organization accepts bugs submitted for this program
  924. under the category `gcc', delete `other' and then type `gcc[RET]'.
  925. `send-pr' replaces the line
  926.  
  927.      >Category:       <name of the product (one line)>
  928.  
  929. in the template with
  930.  
  931.      >Category:       gcc
  932.  
  933. and moves on to another field.
  934.  
  935.    `send-pr' provides name completion in the minibuffer.  For instance,
  936. you can also type `gc[TAB]', and `send-pr' attempts to complete the
  937. entry for you.  Typing `g[TAB]' may not have the same effect if several
  938. possible entries begin with `g'.  In that case `send-pr' cannot
  939. complete the entry because it cannot determine whether you mean `gcc'
  940. or, for example, `gdb', if both of those are possible categories.
  941. `send-pr' continues to prompt you for a valid entry until you enter one.
  942.  
  943.    `send-pr' prompts you interactively to enter each field for which
  944. there is a range of specific choices.  If you attempt to enter a value
  945. which is not in the range of acceptable entries, `send-pr' responds
  946. with `[No match]' and allows you to change the entry until it contains
  947. an acceptable value.  This avoids unusable information (at least in
  948. these fields) and also avoids typographical errors which could cause
  949. problems later.
  950.  
  951.    `send-pr' prompts you for the following fields:
  952.  
  953.      >Category:
  954.      >Confidential: (*default*:  no)
  955.      >Severity:     (*default*:  serious)
  956.      >Priority:     (*default*:  medium)
  957.      >Class:        (*default*:  sw-bug)
  958.      >Release:
  959.      >Synopsis:     (*this value is copied to `Subject:'*)
  960.  
  961. After you complete these fields, `send-pr' places the cursor in the
  962. `>Description:' field and displays the message
  963.  
  964.      To send the problem report use: C-c C-c
  965.  
  966. in the minibuffer.  At this point, edit the file in the main buffer to
  967. reflect your specific problem, putting relevant information in the
  968. proper fields.
  969.  
  970.    `send-pr' provides a few key bindings to make moving around in a
  971. template buffer more simple:
  972.  
  973. `C-c C-f'
  974. `M-x change-field'
  975.      Changes the field under the cursor.  `edit-pr' prompts you for a
  976.      new value.
  977.  
  978. `M-C-b'
  979. `M-x gnats-backward-field'
  980.      Moves the cursor to the beginning of the value of the current
  981.      field.
  982.  
  983. `M-C-f'
  984. `M-x gnats-forward-field'
  985.      Moves the cursor to the end of the value of the current field.
  986.  
  987. `M-p'
  988. `M-x gnats-previous-field'
  989.      Moves the cursor back one field to the beginning of the value of
  990.      the previous field.
  991.  
  992. `M-n'
  993. `M-x gnats-next-field'
  994.      Moves the cursor forward one field to the beginning of the value
  995.      of the next field.
  996.  
  997.    `send-pr' takes over again when you type `C-c C-c' to send the
  998. message.  `send-pr' reports any errors in a separate buffer, which
  999. remains in existence until you send the PR properly (or, of course,
  1000. until you explicitly kill the buffer).
  1001.  
  1002.    For detailed instructions on using Emacs, see *Note Introduction:
  1003. (emacs)Introduction.
  1004.  
  1005.    ---------- Footnotes ----------
  1006.  
  1007.    (1)  If typing `M-x send-pr' doesn't work, see your system
  1008. administrator for help loading `send-pr' into Emacs.
  1009.  
  1010. 
  1011. File: gnats.info,  Node: send-pr from the shell,  Next: Helpful hints,  Prev: send-pr in Emacs,  Up: send-pr
  1012.  
  1013. Invoking `send-pr' from the shell
  1014. ---------------------------------
  1015.  
  1016.      send-pr [ SITE ]
  1017.              [ -f PROBLEM-REPORT | --file PROBLEM-REPORT ]
  1018.              [ -t MAIL-ADDRESS | --to MAIL-ADDRESS ]
  1019.              [ --request-id ]
  1020.              [ -L | --list ] [ -P | --print ]
  1021.              [ -V | --version] [ -h | --help ]
  1022.  
  1023.    SITE is an alias on your local machine which points to an address
  1024. used by a Support Site.  If this argument is not present, the default
  1025. SITE is usually the site which you received `send-pr' from, or your
  1026. local site if you use GNATS locally.
  1027.  
  1028.    Invoking `send-pr' with no options calls the editor named in your
  1029. environment variable `EDITOR' on a default PR template.  If the
  1030. environment variable `PR_FORM' is set, its value is used as a file name
  1031. which contains a valid template.  If `PR_FORM' points to a missing or
  1032. unreadable file, or if the file is empty, `send-pr' generates an error
  1033. message and opens the editor on a default template.
  1034.  
  1035. `-f PROBLEM-REPORT'
  1036. `--file PROBLEM-REPORT'
  1037.      Specifies a file, PROBLEM-REPORT, where a completed Problem Report
  1038.      already exists.  `send-pr' sends the contents of the file without
  1039.      invoking an editor.  If PROBLEM-REPORT is `-', `send-pr' reads
  1040.      from standard input.
  1041.  
  1042. `-t MAIL-ADDRESS'
  1043. `--to MAIL-ADDRESS'
  1044.      Sends the PR to MAIL-ADDRESS. The default is preset when `send-pr'
  1045.      is configured.  *This option is not recommended*; instead, use the
  1046.      argument SITE on the command line.
  1047.  
  1048. `--request-id'
  1049.      Sends a request for a `>Submitter-Id:' to the Support Site.
  1050.  
  1051. `-L'
  1052. `--list'
  1053.      Prints the list of valid `>Category:' values on standard output.
  1054.      No mail is sent.
  1055.  
  1056. `-P'
  1057. `--print'
  1058.      Displays the PR template.  If the variable `PR_FORM' is set in your
  1059.      environment, the file it specifies is printed.  If `PR_FORM' is not
  1060.      set, `send-pr' prints the standard blank form.  If the file
  1061.      specified by `PR_FORM' doesn't exist, `send-pr' displays an error
  1062.      message.  No mail is sent.
  1063.  
  1064. `-V'
  1065. `--version'
  1066.      Displays the `send-pr' version number and a usage summary.  No mail
  1067.      is sent.
  1068.  
  1069. `-h'
  1070. `--help'
  1071.      Displays a usage summary for `send-pr'.  No mail is sent.
  1072.  
  1073. 
  1074. File: gnats.info,  Node: Helpful hints,  Prev: send-pr from the shell,  Up: send-pr
  1075.  
  1076. Helpful hints
  1077. -------------
  1078.  
  1079.    There is no orthodox standard for submitting effective bug reports,
  1080. though you might do well to consult the section on submitting bugs for
  1081. GNU `gcc' in *Note Reporting Bugs: (gcc)Bugs, by Richard Stallman.
  1082. This section contains instructions on what kinds of information to
  1083. include and what kinds of mistakes to avoid.
  1084.  
  1085.    In general, common sense (assuming such an animal exists) dictates
  1086. the kind of information that would be most helpful in tracking down and
  1087. resolving problems in software.
  1088.    * Include anything *you* would want to know if you were looking at
  1089.      the report from the other end.  There's no need to include every
  1090.      minute detail about your environment, although anything that might
  1091.      be different from someone else's environment should be included
  1092.      (your path, for instance).
  1093.  
  1094.    * Narratives are often useful, given a certain degree of restraint.
  1095.      If a person responsible for a bug can see that A was executed, and
  1096.      then B and then C, knowing that sequence of events might trigger
  1097.      the realization of an intermediate step that was missing, or an
  1098.      extra step that might have changed the environment enough to cause
  1099.      a visible problem.  Again, restraint is always in order ("I set
  1100.      the build running, went to get a cup of coffee (Columbian, cream
  1101.      but no sugar), talked to Sheila on the phone, and then THIS
  1102.      happened...") but be sure to include anything relevant.
  1103.  
  1104.    * Richard Stallman writes, "The fundamental principle of reporting
  1105.      bugs usefully is this: *report all the facts*.  If you are not sure
  1106.      whether to state a fact or leave it out, state it!"  This holds
  1107.      true across all problem reporting systems, for computer software
  1108.      or social injustice or motorcycle maintenance.  It is especially
  1109.      important in the software field due to the major differences
  1110.      seemingly insignificant changes can make (a changed variable, a
  1111.      missing semicolon, etc.).
  1112.  
  1113.    * Submit only *one* problem with each Problem Report.  If you have
  1114.      multiple problems, use multiple PRs.  This aids in tracking each
  1115.      problem and also in analyzing the problems associated with a given
  1116.      program.
  1117.  
  1118.    * It never hurts to do a little research to find out if the bug
  1119.      you've found has already been reported.  Most software releases
  1120.      contain lists of known bugs in the Release Notes which come with
  1121.      the software; see your system administrator if you don't have a
  1122.      copy of these.
  1123.  
  1124.    * The more closely a PR adheres to the standard format, the less
  1125.      interaction is required by a database administrator to route the
  1126.      information to the proper place.  Keep in mind that anything that
  1127.      requires human interaction also requires time that might be better
  1128.      spent in actually fixing the problem.  It is therefore in
  1129.      everyone's best interest that the information contained in a PR be
  1130.      as correct as possible (in both format and content) at the time of
  1131.      submission.
  1132.  
  1133. 
  1134. File: gnats.info,  Node: edit-pr,  Next: query-pr,  Prev: send-pr,  Up: Invoking the tools
  1135.  
  1136. Editing existing Problem Reports
  1137. ================================
  1138.  
  1139.    Use `edit-pr' to make changes to existing PRs in the database.
  1140. `edit-pr' is both a shell script and a Lisp program for GNU Emacs.
  1141. Both implementations are essentially identical, though the Emacs
  1142. interface provides interactive prompting for some of the fields.
  1143.  
  1144.    `edit-pr' first examines the PR you wish to edit and locks it if it
  1145. is not already locked.  This is to prevent you from editing a PR at the
  1146. same time as another user.  If the PR you wish to edit is already in the
  1147. process of being edited, `edit-pr' tells you the name of the person who
  1148. owns the lock.
  1149.  
  1150.    You may edit any field in the database that you wish.  We recommend
  1151. that you avoid deleting any information in the TEXT and MULTITEXT
  1152. fields (such as `>Description:' and `>How-To-Repeat:' (*note Problem
  1153. Report format: Fields.).  We also recommend that you record the final
  1154. solution to the problem in the `>Fix:' field for future reference.
  1155.  
  1156.    If you change the `>Responsible:' field, `edit-pr' prompts you to
  1157. supply a reason for the change.  `edit-pr' then mails copies of the
  1158. change message to the previous responsible party, and to the new
  1159. responsible party.  The change is then recorded in the `>Audit-Trail:'
  1160. section of the PR as follows:
  1161.  
  1162. `Responsible-Changed-<From>-<To>': The value change, supplied
  1163.      automatically by `edit-pr'.
  1164.  
  1165. `Responsible-Changed-By': Your name here, supplied
  1166.      automatically by `edit-pr'.
  1167.  
  1168. `Responsible-Changed-When': The current date, supplied
  1169.      automatically by `edit-pr'.
  1170.  
  1171. `Responsible-Changed-Why': Your reason for the change; you
  1172.      are prompted for this.
  1173.  
  1174.    If you change the `>State:' field, you are prompted to supply a
  1175. reason for the change.  Copies of the change message are then mailed to
  1176. the responsible party, and to the original submitter of the Problem
  1177. Report.  The change is then recorded in the `Audit-Trail' section of
  1178. the PR as follows:
  1179.  
  1180. `State-Changed-<From>-<To>': The value change, supplied
  1181.      automatically by `edit-pr'.
  1182.  
  1183. `State-Changed-By': Your name here, supplied
  1184.      automatically by `edit-pr'.
  1185.  
  1186. `State-Changed-When': The current date, supplied
  1187.      automatically by `edit-pr'.
  1188.  
  1189. `State-Changed-Why': Your reason for the change; you are
  1190.      prompted for this.
  1191.  
  1192.    The PR is then resubmitted to the database, and the index is updated
  1193. (*note The `index' file: index file.).  For information on `pr-edit',
  1194. the main driver for `edit-pr', see *Note Internal utilities: Internal
  1195. utils.
  1196.  
  1197. * Menu:
  1198.  
  1199. * edit-pr in Emacs::        Using `edit-pr' from within Emacs
  1200. * edit-pr from the shell::  Invoking `edit-pr' from the shell
  1201.  
  1202.